در پنجمین ویراست از کتاب «فرهنگ رایانهای مایکروسافت» درباره رجیستری چنین آمده است:
یک پایگاه داده متمرکز با ساختارِ سلسله مراتبی که در ویندوزهای x9،CE ،NT و 2000 به کار رفته و از آن برای نگهداری اطلاعات لازم جهت پیکربندی سیستم برای یک یا چند کاربر، برنامههای کاربردی و تجهیزات سختافزاری استفاده میشود.
رجیستری، حاوی اطلاعاتی است که ویندوز در حین عمل، به طور پیوسته و مکرر به آنها رجوع میکند؛ از قبیل [تنظیمات مربوط به] پروندههای هر کاربر، برنامههای کاربردی نصب شده بر روی رایانه، انواع مستنداتی که [هر کاربر] میتواند ایجاد کند، خصلتهای صفحهای پوشهها، آیکونهای برنامهها، سختافزارهای موجود در سیستم، درگاههای مورد استفاده و... .
رجیستری، جایگزینی است برای فایلهای مبتنی بر متن با پسوند INI در ویندوز x.3 و همچنین فایلهای پیکربندی MS-DOS، مثل autoexec.bat و config.sys. در ضمن، دادههای رجیستری در فایلهای دودویی ذخیره میشوند.
نقش و اهمیت رجیستری:
رجیستری، یکی از مهمترین و اصلیترین بخشهای سیستمعامل ویندوز است. این بخش، نقشی کلیدی در پیکربندی و کنترل سیستمعامل ویندوز ایفا کرده و همچون انبارهای است که تنظیمات کلیِ سیستم (اعم از نرمافزاری و سختافزاری) و تنظیمات خاصِ هر کاربر را در خود جای میدهد. نقش این بخش در ویندوز چنان است که تغییر در آن، تاثیرات بنیادینی بر عملکرد کل این سیستمعامل خواهد داشت. به خاطر همین اهمیت و حساسیت، رجیستری از دید و دسترسی کاربران عادی به دور نگاه داشته میشود. اما کاربر خبره میتواند از طریق ابزارهای تعبیه شده در ویندوز - نظیر regedit.exe - مستقیما در محتوای رجیستری، دخل و تصرف کند.
تاریخچه:
در نسخههای 16 بیتی ویندوز (مثل ویندوز x.3) از چندین فایلِ متنی با پسوند INI برای نگهداری تنظیماتِ سیستمعامل و برنامهها استفاده میشد؛ مثلا تنظیمات کلیِ سیستمعامل و تجهیزات سختافزاری در فایل system.ini و تنظیمات برنامههای کاربردی و میزکار در فایل win.ini ذخیره میشدند. با نصب هر برنامهٔ جدید نیز، مدخلی برای آن در فایلهای INI ایجاد میشد. گاهی هم پس از نصب یک برنامه (مثل Excel)، فایلهای INI مخصوصِ آن برنامه ساخته میشد (مثلا Excel.ini).
اما فایلهای INI دارای سه مشکل عمده بودند:
1_ پراکندهشدن تنظیمات سیستم در فایلهای متعدد
2_ محدودیت در حجم هر فایل (حداکثر 64 کیلوبایت)
3_ راحتی ویرایش فایلها با ویرایشگرهای متن (افزایش احتمال بروز اشتباه)
اکنون، در ویندوزهای 32 و 64 بیتی، تمام دادههای موجود در فایلهای پیکربندیِ سیستم، از جمله system.ini، win.ini و control.ini، به همراه اکثر تنظیمات دیگر، در مجموعهای منسجم از فایلهای باینری - تحت نام رجیستری - نگهداری میشوند.
رجیستری در عمل
در حالت کلی، دادههای مندرج در رجیستری، در سه وضعیت یا مرحله خوانده میشوند:
بوتشدن سیستم:
سیستم، فهرست درایورهای لازم جهت بارگذاریِ سختافزارها و نحوه پیکربندی بخشهای زیرسیستمی (مثل مدیر حافظه و مدیر پردازش) را از رجیستری میخواند.
ورود به ویندوز:
برنامهٔ Explorer و سایر اجزای ویندوز، تنظیمات مربوط به هر کاربر را از رجیستری میخوانند، از قبیل: راهنمای درایوهای شبکه و حروفِ معرفِ آنها، تصویر کاغذدیواریِ میزکار، محافظِ صفحهنمایش، وضعیت منوها و مکان آیکونها.
آغاز به کار برنامههای کاربردی:
هر برنامه، تنظیمات کلیِ سیستم (مثل فهرست اجزای نصب شده اختیاری و دادههای پروانه بهرهبرداری از برنامه) و تنظیمات مخصوصِ کاربر فعلی (مثل مکان منوها، نوار ابزار، و فهرست مستنداتی که اخیرا مورد دسترسی قرار گرفتهاند) را از رجیستری میخواند.
البته رجیستری ممکن است در وضعیتهای دیگری هم خوانده شود، مثل زمانی که تغییراتی در یکی از مقادیر یا کلیدهای رجیستری لازم باشد (در ادامه این مقاله، درباره اصطلاحات کلید و مقدار توضیح داده خواهد شد). برخی از برنامهها هم، مرتبا محتوای رجیستری را بررسی میکنند تا در صورت بروز تغییر در آن، سریعا پیکربندیهای خود را روزآمد و بهنگام کنند. اما به طور کلی، در یک سیستم که در حالت عاطل (Idle) قرار دارد، فعالیتی در رجیستری به چشم نمیخورد.
معمولا محتوای رجیستری در موارد زیر تغییر میکند:
نصب نرم افزار:
برنامههایی که بنام Setup مشهور بوده و وظیفه آنها نصب نرمافزارهای جدید بر روی رایانه است، تنظیمات پیشفرضِ هر برنامه را در خلال عملیات نصبِ آن، در رجیستری ثبت میکنند.
نصب درایور:
در حین نصب درایورِ یک دستگاه، بخشِ موسوم به Plug & Play، تنظیمات مربوط به دستگاه را در رجیستری ثبت میکند. این تنظیمات، نحوه آغاز به کار و عملکرد دستگاه را برای «مدیر I/O» مشخص خواهند کرد.
با تغییرات کاربر:
هنگامی که کاربر، تنظیمات مربوط به یک برنامه یا کلِ سیستم را از طریق «کنترل پانل» تغییر میدهد، تنظیمات جدید در رجیستری به ثبت میرسند.
یکی دیگر از راههای تغییر در رجیستری، ویرایش دستی آن از طریق برنامه Registry Editor است. این برنامه، یکی از ابزارهای سیستمی تعبیهشده در خودِ ویندوز است که امکان ویرایش مستقیمِ رجیستری را برای مدیر سیستم (System Administrator) فراهم میکند. البته باید توجه داشت که عملکرد این ویرایشگر با ویرایشگرهای متن متفاوت است و مثلا امکان انجام عمل واگرد (Undo) در آن وجود ندارد. به همین دلیل، در به کارگیری و استفاده از آن باید محتاط بود، چرا که هرگونه دستکاریِ ناشیانه در رجیستری، میتواند به مختل شدن عملکرد کل سیستم بیانجامد. از این رو، همیشه توصیه میشود که پیش از شروع عملِ ویرایش، یک کپی پشتیبان از رجیستری تهیه شود.
ساختار رجیستری:
ساختار رجیستری، شباهت زیادی به ساختارِ منطقیِ یک دیسک دارد؛ رجیستری، شامل چندین کلید (Key) است که مفهوم آنها مشابه دایرکتوری در دیسک بوده و هر کلید هم، شامل چندین مقدار (Value) است که مثل فایلهایی درون دایرکتوریها قرار دارند. مقادیر که در واقع خانههایی برای نگهداری دادهها هستند، از سه مولفه تشکیل میشوند: نام، نوع و داده.
هر کلید میتواند شامل تعدادی کلید دیگر هم باشد که در این صورت به آنها زیر-کلید (Sub-key) گفته میشود. زیر-کلیدها هم به نوبه خود میتوانند شامل زیر-کلیدهای دیگری باشد. کلیدهایی که در بالاترین سطح قرار دارند، ریشه (Root) خوانده میشوند. بنابراین، بجز ریشهها، تمام کلیدهای دیگر را میتوان زیر-کلید به حساب آورد.
هر زیر-کلید دارای یک مقدار بنام (Default) است که به صورت پیشفرض، دادهای درون آن قرار ندارد (value not set).
ساختار سلسله مراتبی رجیستری، شباهت فراوانی به ساختار «درخت» دارد. در ادبیات علم رایانه، منظور از درخت، نوعی ساختار داده پویا (دینامیک) است که شرح و وصف آن در مبحث «ساختمان دادهها» ذکر میشود. در اینجا به ذکر همین نکته بسنده میکنیم که رجیستری شامل چندین درخت است که گرههای آنها حاوی کلید و برگهای آنها حامل مقدار هستند.
گفتنی است ساختار اولیه رجیستری که به صورت یک پیشالگو (Prototype) تدوین شده و شامل یک سِری تنظیمات اولیه و پیشفرض است، همراه با خودِ ویندوز و در خلالِ عملیاتِ نصبِ سیستمعامل، بر روی دیسکسخت کپی میشود.
کلیدهای ریشه:
در رجیستری، به صورت از پیش تعریف شده، پنج کلید ریشه وجود دارد. نام کلیدهای ریشه با کلمه HKEY شروع میشود که خلاصه عبارت «Handle to a KEY» است. هر ریشه، یک مجموعه تودرتو (Nested) از کلیدها را در خود جای میدهد. ضمنا تعداد ریشهها، ثابت است؛ بدین معنا که نه میتوان ریشه جدیدی ایجاد کرد و نه ریشه موجودی را حذف کرد.
فهرست کلیدهای ریشه در رجیستری و محتوای آنها:
HKEY_CURRENT_USER: اطلاعات کاربری که اکنون وارد سیستم شده است (کاربر فعلی)
HKEY_USERS: اطلاعات مربوط به همه کاربرانِ تعریف شده در سیستم
HKEY_LOCAL_MACHINE: اطلاعات کلی مربوط به سیستم (مشترک بین کاربران)
HKEY_CLASSES_ROOT: اطلاعات انتساب فایلها بر اساس پسوندشان به برنامهها و...
HKEY_CURRENT_CONFIG: اطلاعاتی درباره پروفایل سختافزاری جاری